Route Planning for an Autonomous Vehicle

ABSTRACT

Among other things, a determination is made of and ability of an autonomous vehicle to safely or robustly travel a road feature or a road segment or a route that is being considered for the autonomous vehicle as of a time or range of times. The route conforms to properties of stored road network information. The road feature or road segment or route is eliminated from consideration if the computer has determined that the road feature or road segment or route cannot be safely or robustly traveled by the autonomous vehicle. The determination is based on analysis of performance of the autonomous vehicle.

CROSS-REFERENCE TO RELATED APPLICATION

This application is a continuation of and claims priority to U.S. patent application Ser. No. 15/182,400, filed Jun. 14, 2016, the entire contents of which are incorporated herein by reference.

BACKGROUND

This description relates to route planning for an autonomous vehicle.

An autonomous vehicle can drive safely without human intervention during part of a journey or an entire journey.

An autonomous vehicle includes sensors, actuators, computers, and communication devices to enable automated generation and following of routes through the environment. Some autonomous vehicles have wireless two-way communication capability to communicate with remotely-located command centers that may be manned by human monitors, to access data and information stored in a cloud service, and to communicate with emergency services.

As shown in FIG. 1, in a typical use of an autonomous vehicle 10, a desired goal position 12 (e.g., a destination address or street intersection) may be identified in a variety of ways. The goal position may be specified by a rider (who may be, for example, an owner of the vehicle or a passenger in a mobility-as-a-service “robo-taxi” application). The goal position may be provided by an algorithm (which, for example, may be running on a centralized server in the cloud and tasked with optimizing the locations of a fleet of autonomous vehicles with a goal of minimizing rider wait times when hailing a robo-taxi). In some cases, the goal position may be provided by a process (e.g., an emergency process that identifies the nearest hospital as the goal position due to a detected medical emergency on board the vehicle).

Given a desired goal position, a routing algorithm 20 determines a route 14 through the environment from the vehicle's current position 16 to the goal position 12. We sometimes call this process “route planning.” In some implementations, a route is a series of connected segments of roads, streets, and highways (which we sometimes refer to as road segments or simply segments).

Routing algorithms typically operate by analyzing road network information. Road network information typically is a digital representation of the structure, type, connectivity, and other relevant information about the road network. A road network is typically represented as a series of connected road segments. The road network information, in addition to identifying connectivity between road segments, may contain additional information about the physical and conceptual properties of each road segment, including but not limited to the geographic location, road name or number, road length and width, speed limit, direction of travel, lane edge boundary type, and any special information about a road segment such as whether it is a bus lane, whether it is a right-turn only or left-turn only lane, whether it is part of a highway, minor road, or dirt road, whether the road segment allows parking or standing, and other properties.

The routing algorithm typically identifies one or more candidate routes 22 from the current position to the goal position. Identification of the best, or optimal, route 14 from among the candidate routes is generally accomplished by employing algorithms (such as A*, D*, Dijkstra's algorithm, and others) that identify a route that minimizes a specified cost. This cost is typically a function of one or more criteria, often including the distance traveled along a candidate route, the expected time to travel along the candidate route when considering speed limits, traffic conditions, and other factors. The routing algorithm may identify one or more than one good routes to be presented to the rider (or other person, for example, an operator at a remote location) for selection or approval. In some cases, the one optimal route may simply be provided to a vehicle trajectory planning and control module 28, which has the function of guiding the vehicle toward the goal (we sometimes refer to the goal position or simply as the goal) along the optimal route.

As shown in FIG. 2, road network information typically is stored in a database 30 that is maintained on a centrally accessible server 32 and may be updated at high frequency (e.g., 1 Hz or more). The network information can be accessed either on-demand (e.g., requested by the vehicle 34), or pushed to the vehicle by a server.

Road network information can have temporal information associated with it, to enable descriptions of traffic rules, parking rules, or other effects that are time dependent (e.g., a road segment that does not allow parking during standard business hours, or on weekends, for example), or to include information about expected travel time along a road segment at specific times of day (e.g., during rush hour).

SUMMARY

In general, in an aspect, a determination is made of and ability of an autonomous vehicle to safely or robustly travel a road feature or a road segment or a route that is being considered for the autonomous vehicle as of a time or range of times. The route conforms to properties of stored road network information. The road feature or road segment or route is eliminated from consideration if the computer has determined that the road feature or road segment or route cannot be safely or robustly traveled by the autonomous vehicle. The determination is based on analysis of performance of the autonomous vehicle.

Implementations may include one or a combination of two or more of the following features. The analysis of performance of the autonomous vehicle includes prior driving performance associated with road features. The analysis of performance of the autonomous vehicle includes prior simulation performance associated with road features.

These and other aspects, features, implementations, and advantages, and combinations of them, can be expressed as methods, systems, components, apparatus, program products, methods of doing business, means and steps for performing functions, and in other ways.

Other aspects, features, implementations, and advantages will become apparent from the following description and from the claims.

DESCRIPTION

FIGS. 1 through 3 are block diagrams.

FIGS. 4 through 9 are schematic diagrams of roadway scenarios.

FIG. 10 is a schematic view of a vehicle and a remotely located database.

For route planning involving human-piloted vehicles, it is generally assumed that a route identified by a routing algorithm from a current position to a goal position that is composed of connected road segments is a route that can be driven safely by the driver. However, this assumption may not be valid for routes identified by the routing algorithm for an autonomous vehicle for various reasons. Autonomous vehicles may not be able to safely navigate certain road segments, intersections, or other geographic regions (which we will broadly refer to as road features) due to the specific properties of the road features and the vehicle's capabilities with respect to those road features. Also, autonomous vehicles may not be able to safely navigate certain road features during certain times of the day, periods of the year, or under certain weather conditions.

An example of the physical locations of sensors and software processes in a vehicle and at a cloud-based server and database is shown in FIGS. 3 and 10.

Sensors and Software Processes

In many cases, this inability to safely navigate road features relates to characteristics of sensors and software processes that the autonomous vehicle uses to perceive the environment, process data from the sensors, understand conditions that are currently presented by and may at future times be presented by the perceived environment, perform motion planning, perform motion control, and make decisions based on those perceptions and understandings. Among other things, under certain conditions and at certain times, the ability of the sensors and processes to perceive the environment, understand the conditions, perform motion planning and motion control, and make the decisions may be degraded or lost or may be subject to unacceptable variation.

Examples of such degradation or unacceptable variation of sensor and software process outputs are as follows:

Sensors for Perceiving the Vehicle's Environment

As shown on FIG. 3, sensors 40 of the following types are commonly available on vehicles that have a driver assistance capability or a highly automated driving capability (e.g., an autonomous vehicle): Sensors able to measure properties of the vehicle's environment including but not limited to, e.g., LIDAR, RADAR, monocular or stereo video cameras in the visible light, infrared, or thermal spectra, ultrasonic sensors, time-of-flight (TOF) depth sensors, as well as temperature and rain sensors, and combinations of them. Data 42 from such sensors can be processed 44 to yield “data products” 46, e.g., information about the type, position, velocity, and estimated future motion of other vehicles, pedestrians, cyclists, scooters, carriages, carts, animals, and other moving objects. Data products also include the position, type, and content of relevant objects and features such as static obstacles (e.g., poles, signs, curbs, traffic marking cones and barrels, traffic signals, traffic signs, road dividers, and trees), road markings, and road signs.

The ability of the software processes 44 to use such sensor data to compute such data products at specified levels of performance depends on the properties of the sensors, such as the detection range, resolution, noise characteristics, temperature dependence, and other factors. The ability to compute such data products at a specified level of performance may also depend on the environmental conditions, such as the properties of the ambient lighting (e.g., whether there is direct sunlight, diffuse sunlight, sunrise or sunset conditions, dusk, or darkness), the presence of mist, fog, smog, or air pollution, whether or not it is raining or snowing or has recently rained or snowed, and other factors.

Generally, it is possible to characterize the capability of a particular sensor (and associated processing software) to yield a data product of interest at a specific level of performance (e.g., a specific level of accuracy of detection, range of detection, rate of true or false positives, or other metric) as a function of a measurable metric relating to the environmental conditions. For example, it is generally possible to characterize the range at which a particular monocular camera sensor can detect moving vehicles at a specified performance level, as a function of ambient illumination levels associated with daytime and nighttime conditions.

Further, it is generally possible to identify specific failure modes of the sensor, i.e., conditions or circumstances where the sensor will reliably degrade or fail to generate a data product of interest, and to identify data products that the sensor has not been designed to be able to generate.

FIG. 9 shows an example of an autonomous vehicle sensor configuration.

Software for Processing Data from Sensors

As noted above, data from sensors can be used by software processes 44 to yield a variety of data products of interest. The ability of each of the software processes to generate data products that conform to specified levels of performance depends on properties of the sensor software processes (e.g., algorithms), which may limit their performance in scenarios with certain properties, such as a very high or very low density of data features relevant to the sensing task at hand.

For example, an algorithm (we sometimes use the terms software process and algorithm interchangeably) for pedestrian detection that relies on data from a monocular vision sensor may degrade or fail in its ability to detect, at a specified level of performance (e.g., a specified processing rate), more than a certain number of pedestrians and may therefore degrade or fail (in the sense of not detecting all pedestrians in a scene at the specified level of performance) in scenarios with a large number of pedestrians. Also, an algorithm for determining the location of the ego vehicle (termed “localization”) based on comparison of LIDAR data collected from a vehicle-mounted sensor to data stored in a map database may fail in its ability to determine the vehicle's current position at a specified level of performance (e.g., at a specified degree of positional accuracy) in scenarios with little geometric relief, such as a flat parking lot.

Generally, it is possible to characterize the capability of a particular sensor software processes to yield a data product of interest at a specific level of performance as a function of measurable scenario properties.

Often the data provided by more than one sensor is combined in a data fusion framework implemented by one or more software processes, with an aim of improving the overall performance of computing a data product or data products. For example, data from a video camera can be combined with data from a LIDAR sensor to enable detection of pedestrians, at a level of performance that is designed to exceed the level of performance achievable through the use of either a video camera or LIDAR sensor alone. In data fusion scenarios such as this, the above remains true: it is generally possible to characterize the capability of a particular data fusion framework to yield a data product of interest at a specific level of performance.

Software Processes for Motion Planning

Vehicles capable of highly automated driving (e.g., autonomous vehicles) rely on a motion planning process, i.e., an algorithmic process to automatically generate and execute a trajectory through the environment toward a designated short-term goal. We use the term trajectory broadly to include, for example, a path from one place to another. To distinguish the trajectory that is generated by the motion planning process from the route that is generated by a route planning process, we note that trajectories are paths through the vehicle's immediate surroundings (e.g. with distance scales typically on the order of several meters to several hundred meters) that are specifically designed to be free of collisions with obstacles and often have desirable characteristics related to path length, ride quality, required travel time, lack of violation of rules of the road, adherence to driving practices, or other factors.

Some motion planning processes employed on autonomous vehicles exhibit known limitations. For example, a certain motion planning process may be able to compute paths for the vehicle from its current position to a goal under the assumption that the vehicle moves only in the forward direction, but not in reverse. Or, a certain motion planning process may be able to compute paths for a vehicle only when the vehicle is traveling at a speed that is less than a specified speed limit.

It is generally possible to identify these and similar performance characteristics (e.g., limitations) on a motion planning process, based on knowledge of the process's algorithmic design or its observed performance in simulation or experimental testing. Depending on the limitations of a particular motion planning process, it may prove difficult or impossible to navigate safely in specific regions, e.g., highways that require travel at high speeds, or multi-level parking structures that require complex multi-point turns involving both forward and reverse maneuvering.

Software Processes for Decision Making

Vehicles capable of highly automated driving rely on a decision making process, i.e., an algorithmic process, to automatically decide an appropriate short-term course of action for a vehicle at a given time, e.g., whether to pass a stopped vehicle or wait behind it; whether to proceed through a four-way stop intersection or yield to a vehicle that had previously arrived at the intersection.

Some decision making processes employed on autonomous vehicles exhibit known limitations. For example, a certain decision making process may not be able to determine an appropriate course of action for a vehicle in certain scenarios of high complexity, e.g., in roundabouts that include traffic lights, or in multi-level parking structures.

As in the case of motion planning processes, it is generally possible to identify these and similar performance characteristics (e.g., limitations) on a decision making process, based on knowledge of the process's algorithmic design or its observed performance in simulation or experimental testing. Depending on the limitations of a particular decision making process, it may prove difficult or impossible to navigate safely in specific regions.

Software Processes for Vehicle Motion Control

Autonomous vehicles generally aim to follow the trajectory provided by a motion planning process with a high degree of precision by employing a motion control process. Motion control processes compute a set of control inputs (i.e., steering, brake, and throttle inputs) based on analysis of the current and predicted deviation from a desired trajectory and other factors.

Such motion control processes exhibit known limitations. For example, a certain motion control process may allow for stable operation only in the forward direction, but not in reverse. Or, a certain motion control process may possess the capability to track (to a specified precision) a desired trajectory only when the vehicle is traveling at a speed that is less than a specified speed limit. Or, a certain motion control process may possess the capability to execute steering or braking inputs requiring a certain level of lateral or longitudinal acceleration only when the road surface friction coefficient exceeds a certain specified level.

As in the case of motion planning and decision making processes, it is generally possible to identify these and similar limitations on a motion control process, based on knowledge of the processes' algorithmic design, or its observed performance in simulation or experimental testing. Depending on the limitations of a particular motion control process, it may prove difficult or impossible to navigate safely in specific regions.

Safe or robust operation of the autonomous vehicle can be determined based on specific levels of performance of sensors and software processes as functions of current and future conditions.

Characteristics of Road Features

The route planning process aims to exclude candidate routes that include road features that can be determined to be not safely navigable by an autonomous vehicle. For this purpose the route planning process can usefully consider sources of information that are specifically relevant to autonomous vehicles, including information about characteristics of road features such as spatial characteristics, orientation, surface characteristics, and others. Generally, such information would be used to avoid routing the autonomous vehicle through areas of the road network that would be difficult or impossible for the vehicle to navigate at a required level of performance or safety. Examples of sources of information, and an explanation of their effects on autonomous vehicle performance or safety, are described here.

Spatial Characteristics of Intersections, Roundabouts, Junctions, or Other Road Features

As illustrated by the example shown in FIG. 5, road network information may contain, or allow calculation by a separate process, information pertaining to the spatial characteristics of road intersections, roundabouts, junctions, or other roadway features including multi-lane surface roads and highways. Such information may include the width of a roadway, the distance across an intersection (i.e., the distance from a point on a travel lane at the edge of an intersection to a point on an opposing lane at an opposite edge of an intersection), and the distance across a roundabout (i.e. the diameter of a roundabout), for example.

Analysis of such spatial characteristics, in light of knowledge of the detection properties of the autonomous vehicle's sensor system, may allow a determination that certain road segments cannot be navigated by the autonomous vehicle at a specified level of safety or robustness without regard to or in light of a certain time or times of day or range of times (e.g., after sunset and before sunrise). This may allow the autonomous vehicle to avoid (for example) certain intersections that are, for example, “too large to see across after sunset,” given practical limitations on the autonomous vehicle's sensing capabilities and the allowable travel speed of the roadway. These limitations may make it impossible for the autonomous vehicle sensors to provide data products to the motion planning process with sufficient time to react to oncoming traffic.

Connectivity Characteristics of Intersections, Roundabouts, Junctions, or Other Road Features

As illustrated by the example shown in FIG. 4, road network information may contain, or allow calculating by a separate process, information pertaining to the connectivity characteristics of specific road segments or individual road segment lanes or other road features. Such information may include the orientation of intersecting road segments with respect to one another, for example. It may also include designations of specialized travel lanes such as right turn only and left turn only lane designations, or identifications of highway entrance ramps and exit ramps.

Analysis of such connectivity characteristics, in light of knowledge of the detection properties of the autonomous vehicle's sensor system, the capabilities of the motion planning process, and the capabilities of the decision-making process, may allow determination that certain road segments or junctions cannot be navigated by the autonomous vehicle at a specified level of safety or robustness, potentially at a certain time(s) of day or range of times. This may allow the autonomous vehicle to avoid, for example, intersections with geometric properties that make it impossible for the autonomous vehicle sensors to provide data products to the motion planning process with sufficient time to react to oncoming traffic. It may also allow the autonomous vehicle to avoid, intersections that are too complex to safely navigate (e.g., due to complex required merging, or inability to reason about travel in specialized travel lanes), given known limitations on the vehicle's decision-making capability.

Spatial Orientations of Road Features

As illustrated by the examples shown in FIG. 6, road network information may contain, or allow calculation by a separate process, information pertaining to the spatial orientation (e.g., the orientation in an inertial coordinate frame) of specific road segments or individual road segment lanes or other road features.

Analysis of orientation of road features, in light of knowledge of the detection properties of the autonomous vehicle's sensor system, may allow determination that certain road segments or junctions cannot be navigated by the autonomous vehicle at a specified level of safety or robustness, potentially at a certain time(s) of day or range of times. This may allow the autonomous vehicle to avoid (for example) being “sun blinded” (i.e., experiencing severely degraded performance of video and/or LIDAR sensors due to exposure to direct sunlight at a low oblique incidence angle).

Locations of Roadworks and Traffic Accidents

Road network information may contain, or be augmented to include via real time mapping service providers or another input, information regarding the location of roadworks or accidents, potentially resulting in closure of certain road segments. Analysis of such information, in light of knowledge of the detection properties of the autonomous vehicle's sensor system, may allow determination that certain road segments or junctions cannot be navigated by the autonomous vehicle due to the vehicle's inability to detect ad hoc signage, barriers, or hand signals presented by human traffic guides associated with the roadworks or accident.

Locations of Rough Road Features

Road network information may contain, or be augmented to include via real time mapping service providers or similar inputs, information regarding the locations of regions of rough, degraded, potholed, damaged, washboarded, or partially constructed roads, including unprepared roads and secondary roads, and roads deliberately constructed with speed bumps or rumble strips. This information may be in the form of a binary designation (e.g., “ROUGH ROAD” or “SMOOTH ROAD”) or in the form of a continuous numerical or semantic metric that quantifies road surface roughness.

Analysis of road surface roughness, in light of knowledge of the detection properties of the autonomous vehicle's sensor system, may allow determination that certain road segments or junctions cannot be navigated by the autonomous vehicle at a specified level of safety or robustness, potentially at a certain time(s) of day or range of times. This may allow the autonomous vehicle to avoid (for example) severely washboarded roads that incite vibration in the physical sensor mounts, leading to poor sensor system performance, or road regions with speed bumps that might be accidentally classified as impassable obstacles by a perception process.

Locations of Road Features Having Poor Visibility Due to Curvature and Slope

As shown in FIGS. 7 and 8, road network information may contain, or allow calculation by a separate process of information pertaining to the curvature and slope (along the vehicle pitch or roll axis) of the road feature.

Analysis of curvature and slope of road features, in light of knowledge of the detection properties of the autonomous vehicle's sensor system, may allow determination that certain road segments or junctions cannot be navigated by the autonomous vehicle at a specified level of safety or robustness, potentially at a certain time(s) of day or range of times. This may allow the autonomous vehicle to avoid road segments that are steeply pitched and therefore make it impossible for the vehicle sensor system to “see over the hill,” (i.e., detect the presence of traffic in the surrounding environment due to the limited vertical field of view of the sensors), and to “see around the corner,” (i.e., detect the presence of traffic in the surrounding environment due to the limited horizontal field of view of the sensors).

Locations of Road Features Having Illegible, Eroded, Incomprehensible, Poorly Maintained or Positioned Markings, Signage, or Signals

Road network information may contain, or be augmented to include via real time mapping service providers or another input, information regarding the locations of road regions with illegible, eroded, incomprehensible, or poorly maintained or positioned lane markings and other road markings, signage, or signals

Analysis of such information, in light of knowledge of the detection properties of the autonomous vehicle's sensor system and (potentially) the capabilities of the motion planning or decision-making process, may allow determination that certain road segments or junctions cannot be navigated by the autonomous vehicle at a specified level of safety or robustness, potentially at a certain time(s) of day or range of times. This may allow the autonomous vehicle to avoid (for example) poorly marked road regions to take account of the vehicle's inability to safely navigate within the lanes, intersections with traffic signs or signals that are partially occluded (e.g. by foliage) or otherwise difficult to detect from a nominal travel lane(s). It may also allow the autonomous vehicle to avoid (for example) road regions with signals or signage that are region- or country-specific and cannot be reliably detected by the vehicle perception process(es).

Locations of Road Features Having Poor Prior Driving Performance by the Autonomous Vehicle or Another Autonomous Vehicle

Road network information may contain, or be augmented to include via real time mapping service providers or another input, or by the autonomous vehicle of interest or any other vehicle in a fleet of autonomous vehicles, information regarding the locations of road features where the autonomous vehicle of interest, or another autonomous vehicle, has experienced dangerous, degraded, unsafe, or otherwise undesirable driving performance, potentially due to high scenario traffic or pedestrian density, occlusion from static objects, traffic junction complexity, or other factors. Identification of regions of poor vehicle performance can be “tagged” in a map database, and marked for avoidance when the number of tagged incidents exceeds a specified threshold. This may allow the autonomous vehicle to avoid road features where the vehicle or other vehicles have experienced navigation difficulty.

Locations of Road Features Having Poor Prior Simulation Performance by a Modeled Autonomous Vehicle

Road network information may contain, or be augmented to include, information regarding the locations of road regions where a model of the autonomous vehicle of interest has been observed in a simulated environment to experience dangerous, degraded, unsafe, or otherwise undesirable driving performance, potentially due to scenario traffic or pedestrian density, occlusion from static objects, traffic junction complexity, or other factors. Identification of regions of poor vehicle performance can be “tagged” in a map database, and marked for avoidance. This may allow the autonomous vehicle to avoid road regions where a model of the vehicle has experienced difficulty in safely navigating in a simulation environment, thereby suggesting that the experimental vehicle may face navigation challenges in the real world environment.

Locations of Road Features That May Present Physical Navigation Challenges in Inclement Weather

Road network information may contain, or allow calculation by a separate process, or be augmented to include via real time mapping service providers or another input, information pertaining to the locations of road features that may present navigation challenges in inclement weather or under specified environmental conditions.

Analysis of such information, in light of knowledge of the detection properties of the autonomous vehicle's sensor system, and knowledge of the performance characteristics of the vehicle's motion control process, may allow determination that certain road segments or junctions cannot be navigated by the autonomous vehicle at a specified level of safety or robustness, potentially at a certain time(s) of day or range of times. This may allow the autonomous vehicle to avoid (for example) road segments containing road inclination or curvature that are impossible to safely navigate when covered with ice, snow, or freezing rain.

Locations of Road Features That May Lead to Known Vehicle Fault or Failure Conditions

Road network information may contain, or allow calculation by a separate process, or be augmented to include via real time mapping service providers or another input, information pertaining to the locations of road features that may lead to known vehicle fault or failure conditions in various sensors or software processes.

Analysis of such information, in light of knowledge of the detection properties of the autonomous vehicle's sensor system, and knowledge of the performance characteristics of the vehicle's motion control process, may allow determination that certain road segments or junctions cannot be navigated by the autonomous vehicle at a specified level of safety or robustness, potentially at a certain time(s) of day or range of times. This may allow the autonomous vehicle to avoid (for example) specific types of metal bridges or overpasses that may induce false readings from RADAR sensors, certain tunnels that may block GPS signals and therefore lead to poor vehicle localization performance, and certain extremely flat roadway regions that may not provide vertical features that are detectable by LIDAR sensors and may therefore lead to poor vehicle localization performance.

Road Segments Containing Road Inclination or Curvature That are Impossible to Safely Navigate When Covered With Ice, Snow, or Freezing Rain.

Road network information may contain, or allow calculation by a separate process, or be augmented to include from real time mapping service providers or another source, information pertaining to the locations of road features that may present navigation challenges in inclement weather or under specified environmental conditions.

Analysis of such information, in light of knowledge of the detection properties of the autonomous vehicle's sensor system, and knowledge of the performance characteristics of the vehicle's motion control process, may allow determination that certain road segments or junctions cannot be navigated by the autonomous vehicle at a specified level of safety or robustness, potentially at a certain time(s) of day or range of times. This may allow the autonomous vehicle to avoid (for example) road segments containing road inclination or curvature that are impossible to safely navigate when covered with ice or freezing rain.

In addition to identifying specific road segments that are not able to be safely navigated by an autonomous vehicle, it is possible to do the opposite: to identify specific road segments that are able to be safely navigated by an autonomous vehicle, based on analysis of relevant information sources as described above. For example, based on analysis of known performance characteristics of vehicle sensors and software processes, and given information about road features, it is possible to determine if a given road segment can be safely and robustly navigated by the autonomous vehicle.

Such analysis would be useful for compiling a map data product or a feed of data to be used by other products or processes, describing “validated autonomous driving routes” of the autonomous vehicle. In some implementations, a data product or data feed could describe “unsafe autonomous driving routes”. This data could be used as one of the properties of road segments that are maintained as part of road network information. In some cases, the validation of road segments and routes (or determination of inability to travel safely or robustly) could be based on successful experimental travel (or simulated travel) by an autonomous vehicle at a level of road features such as streets or at a lane level within a given road feature. A routing algorithm could make use of such information by considering only validated autonomous driving routes when determining an optimal route between the ego vehicle's current position and a goal position. Such an optimal route might attempt to include only road segments that have been deemed “validated autonomous driving routes,” or it might attempt to include a combination of validated and unvalidated driving routes, with the combination determined by an optimization process that considers a variety of factors such as travel distance, expected travel time, and whether or not the road segments are validated or unvalidated, among other factors. In general the route algorithm could explore only candidate routes that are known to have a viability status that exceeds a viability threshold, for example, to allow for sufficiently robust or sufficiently safe travel or both.

In some instances, such information could be used for urban planning purposes, to enable users (i.e., human planners of road networks or automated road network planning software processes) to avoid designing road segments or intersections that are likely to pose navigation challenges to autonomous vehicles. In such a use case, the analysis methods described here would be employed in the context of road design software tools or processes.

Such a road design software tool or process would allow a user to specify or design a road segment, road network, intersection, highway, or other road feature using a variety of possible input devices and user interfaces. As the user employs the road design software tool to specify or design a road segment, road network, intersection, highway, or other road feature, a software process (i.e., a “viability status process”) would analyze the viability status of a road segment or region of multiple, potentially connected, road segments (e.g., a freeway, or intersection). The viability status process may also analyze the viability status of a route. The viability status is determined based on the analysis methods described above.

The output of the viability status process can be a viability status assessment, i.e., an assessment of the viability of the road segment, road network, intersection, highway, or other road feature, or route, expressed in binary designation (e.g., “VIABLE” or “NOT VIABLE”) or can take the form of a continuous numerical or semantic metric that quantifies viability. The viability status assessment may include independent assessments of the safety or robustness of the road segment, road network, intersection, highway, or other road feature, or route, each expressed in binary designation or in the form of a continuous numerical or semantic metrics that quantifies safety or robustness. The output of the viability status process may include a warning to the user based on the value of the viability status assessment.

Depending on the value of the viability status assessment, the road segment, road network, intersection, highway, or other road feature designed by the user may be automatically deleted. Depending on the value of the viability status assessment, the road segment, road network, intersection, highway, or other road feature may be automatically modified in such a manner as to improve the viability status assessment.

In this manner a road design tool or process may be able to alert a user when the user has designed a hazardous road segments, intersection, or route and thereby deter construction of such road segment, intersection, or route, and potentially also suggest improved designs of the road segment, intersection, or route.

We sometimes use the phrase “viability status” broadly to include, for example, any determination or indication for a route or road feature or segment of a route of the level of suitability for travel by an autonomous vehicle, for example, whether it is unsafe, the degree to which it is unsafe, whether it is safe, the degree to which it is safe, whether it can be traveled robustly or not, and the degree of robustness, whether it is valid or not, and other similar interpretations.

Other implementations are also within the scope of the following claims. 

1. One or more non-transitory computer-readable storage media storing instructions which, when executed by one or more processors, cause operations comprising: identifying two or more candidate routes that can be traveled by a vehicle from a starting position to a goal position, wherein each of the two or more candidate routes comprise a respective sequence of connected road segments; retrieving, for a first route of the two or more candidate routes, a first data set associated with a first sequence of connected road segments of the first route; determining, based on the first data set, that a segment of the first sequence includes a requirement for a minimum speed; determining a maximum speed for the vehicle based on a level of performance achieved by a sensor of the vehicle were the vehicle to travel on the segment of the first sequence, wherein the level of performance is influenced by environmental conditions that the vehicle would be exposed to by traveling on the segment of the first sequence; determining that the maximum speed is less than the requirement for the minimum speed; in accordance with a determination that the maximum speed is less than the requirement for the minimum speed, eliminating the first route from consideration as a candidate route; selecting a second route from remaining routes of the two or more candidate routes; and causing a control circuit to operate the vehicle according to the selected second route.
 2. The one or more non-transitory computer-readable storage media of claim 1, wherein determining a maximum speed for the vehicle based on a level of performance achieved by a sensor of the vehicle were the vehicle to travel on the segment of the first sequence comprises: analyzing prior levels of performance achieved by sensors on the segment of the first sequence; and determining the maximum speed based on the analysis.
 3. The one or more non-transitory computer-readable storage media of claim 1, wherein determining a maximum speed for the vehicle based on a level of performance achieved by a sensor of the vehicle were the vehicle to travel on the segment of the first sequence comprises: retrieving results of simulations of levels of performance achieved by sensors on the segment of the first sequence; and determining the maximum speed based on the retrieved results.
 4. The one or more non-transitory computer-readable storage media of claim 1, wherein determining a maximum speed for the vehicle based on a level of performance achieved by a sensor of the vehicle were the vehicle to travel on the segment of the first sequence comprises: retrieving a complexity data associated with the segment of the first sequence; and determining the maximum speed based on the retrieved complexity data.
 5. One or more non-transitory computer-readable storage media storing instructions which, when executed by one or more processors, cause operations comprising: identifying two or more candidate routes that can be traveled by a vehicle from a starting position to a goal position, wherein each of the two or more candidate routes comprise a respective sequence of connected road segments; retrieving, for a first route of the two or more candidate routes, a first data set associated with a first sequence of connected road segments of the first route; determining, based on the first data set, for a segment of the first sequence a requirement for a maximum speed; determining a maximum speed for the vehicle based on a level of performance achieved by a sensor of the vehicle were the vehicle to travel on the segment of the first sequence, wherein the level of performance is influenced by environmental conditions that the vehicle would be exposed to by traveling on the segment of the first sequence; determining that the maximum speed is less than the requirement for the maximum speed; in accordance with a determination that the maximum speed is less than the requirement for the maximum speed, eliminating the first route from consideration as a candidate route; selecting a second route from remaining routes of the two or more candidate routes; and causing a control circuit to operate the vehicle according to the selected second route.
 6. The one or more non-transitory computer-readable storage media of claim 5, wherein determining a maximum speed for the vehicle based on a level of performance achieved by a sensor of the vehicle were the vehicle to travel on the segment of the first sequence comprises: analyzing prior levels of performance achieved by sensors on the segment of the first sequence; and determining the maximum speed based on the analysis.
 7. The one or more non-transitory computer-readable storage media of claim 5, wherein determining a maximum speed for the vehicle based on a level of performance achieved by a sensor of the vehicle were the vehicle to travel on the segment of the first sequence comprises: retrieving results of simulations of levels of performance achieved by sensors on the segment of the first sequence; and determining the maximum speed based on the retrieved results.
 8. One or more non-transitory computer-readable storage media storing instructions which, when executed by one or more processors, cause operations comprising: identifying two or more candidate routes that can be traveled by a vehicle from a starting position to a goal position, wherein each of the two or more candidate routes comprise a respective sequence of connected road segments; retrieving, for a first route of the two or more candidate routes, a first data set associated with a first sequence of connected road segments of the first route; determining, based on the first data set, for a segment of the first sequence, a requirement for performing a maneuver that comprises a forward movement and reverse movement; determining, based on a level of performance to be achieved by a sensor of the vehicle were the vehicle to travel on the segment of the first sequence, that the vehicle is unable to perform the maneuver, wherein the level of performance is influenced by environmental conditions that the vehicle would be exposed to by traveling on the segment of the first sequence; in accordance with a determination that the vehicle is unable to perform the maneuver, eliminating the first route from consideration as a candidate route; selecting a second route from remaining routes of the two or more candidate routes; and causing a control circuit to operate the vehicle according to the selected second route.
 9. The one or more non-transitory computer-readable storage media of claim 8, wherein determining a maximum speed for the vehicle based on a level of performance achieved by a sensor of the vehicle were the vehicle to travel on the segment of the first sequence comprises: analyzing prior levels of performance achieved by sensors on the segment of the first sequence; and determining the maximum speed based on the analysis.
 10. The one or more non-transitory computer-readable storage media of claim 8, wherein determining a maximum speed for the vehicle based on a level of performance achieved by a sensor of the vehicle were the vehicle to travel on the segment of the first sequence comprises: retrieving results of simulations of levels of performance achieved by sensors on the segment of the first sequence; and determining the maximum speed based on the retrieved results.
 11. A computer-implemented method comprising: identifying two or more candidate routes that can be traveled by a vehicle from a starting position to a goal position, wherein each of the two or more candidate routes comprise a respective sequence of connected road segments; retrieving, for a first route of the two or more candidate routes, a first data set associated with a first sequence of connected road segments of the first route; determining, based on the first data set, that a segment of the first sequence includes a requirement for a minimum speed; determining a maximum speed for the vehicle based on a level of performance achieved by a sensor of the vehicle were the vehicle to travel on the segment of the first sequence, wherein the level of performance is influenced by environmental conditions that the vehicle would be exposed to by traveling on the segment of the first sequence; determining that the maximum speed is less than the requirement for the minimum speed; in accordance with a determination that the maximum speed is less than the requirement for the minimum speed, eliminating the first route from consideration as a candidate route; selecting a second route from remaining routes of the two or more candidate routes; and causing a control circuit to operate the vehicle according to the selected second route.
 12. The computer implemented method of claim 11, wherein determining a maximum speed for the vehicle based on a level of performance achieved by a sensor of the vehicle were the vehicle to travel on the segment of the first sequence comprises: analyzing prior levels of performance achieved by sensors on the segment of the first sequence; and determining the maximum speed based on the analysis.
 13. The computer implemented method of claim 11, wherein determining a maximum speed for the vehicle based on a level of performance achieved by a sensor of the vehicle were the vehicle to travel on the segment of the first sequence comprises: retrieving results of simulations of levels of performance achieved by sensors on the segment of the first sequence; and determining the maximum speed based on the retrieved results.
 14. The computer implemented method of claim 11, wherein determining a maximum speed for the vehicle based on a level of performance achieved by a sensor of the vehicle were the vehicle to travel on the segment of the first sequence comprises: retrieving a complexity data associated with the segment of the first sequence; and determining the maximum speed based on the retrieved complexity data.
 15. A computer implemented method comprising: identifying two or more candidate routes that can be traveled by a vehicle from a starting position to a goal position, wherein each of the two or more candidate routes comprise a respective sequence of connected road segments; retrieving, for a first route of the two or more candidate routes, a first data set associated with a first sequence of connected road segments of the first route; determining, based on the first data set, for a segment of the first sequence a requirement for a maximum speed; determining a maximum speed for the vehicle based on a level of performance achieved by a sensor of the vehicle were the vehicle to travel on the segment of the first sequence, wherein the level of performance is influenced by environmental conditions that the vehicle would be exposed to by traveling on the segment of the first sequence; determining that the maximum speed is less than the requirement for the maximum speed; in accordance with a determination that the maximum speed is less than the requirement for the maximum speed, eliminating the first route from consideration as a candidate route; selecting a second route from remaining routes of the two or more candidate routes; and causing a control circuit to operate the vehicle according to the selected second route.
 16. The computer implemented method of claim 15, wherein determining a maximum speed for the vehicle based on a level of performance achieved by a sensor of the vehicle were the vehicle to travel on the segment of the first sequence comprises: analyzing prior levels of performance achieved by sensors on the segment of the first sequence; and determining the maximum speed based on the analysis.
 17. The computer implemented method of claim 15, wherein determining a maximum speed for the vehicle based on a level of performance achieved by a sensor of the vehicle were the vehicle to travel on the segment of the first sequence comprises: retrieving results of simulations of levels of performance achieved by sensors on the segment of the first sequence; and determining the maximum speed based on the retrieved results.
 18. A computer-implemented method comprising: identifying two or more candidate routes that can be traveled by a vehicle from a starting position to a goal position, wherein each of the two or more candidate routes comprise a respective sequence of connected road segments; retrieving, for a first route of the two or more candidate routes, a first data set associated with a first sequence of connected road segments of the first route; determining, based on the first data set, for a segment of the first sequence, a requirement for performing a maneuver that comprises a forward movement and reverse movement; determining, based on a level of performance to be achieved by a sensor of the vehicle were the vehicle to travel on the segment of the first sequence, that the vehicle is unable to perform the maneuver, wherein the level of performance is influenced by environmental conditions that the vehicle would be exposed to by traveling on the segment of the first sequence; in accordance with a determination that the vehicle is unable to perform the maneuver, eliminating the first route from consideration as a candidate route; selecting a second route from remaining routes of the two or more candidate routes; and causing a control circuit to operate the vehicle according to the selected second route.
 19. The computer implemented method of claim 18, wherein determining a maximum speed for the vehicle based on a level of performance achieved by a sensor of the vehicle were the vehicle to travel on the segment of the first sequence comprises: analyzing prior levels of performance achieved by sensors on the segment of the first sequence; and determining the maximum speed based on the analysis.
 20. The computer implemented method of claim 18, wherein determining a maximum speed for the vehicle based on a level of performance achieved by a sensor of the vehicle were the vehicle to travel on the segment of the first sequence comprises: retrieving results of simulations of levels of performance achieved by sensors on the segment of the first sequence; and determining the maximum speed based on the retrieved results. 